1. Field of the Invention
The present invention relates, in general, to use of information models in service frameworks such as Web service frameworks, as a “source-of-record” for the format of data used and exchanged by services, and, more particularly, to a method and corresponding system for validating compliance with a conceptual model that provides data definitions or data format definitions for a service framework.
2. Relevant Background
There is a growing trend within the information and computer industries to operate enterprise-scale software systems and other large computer networks using a service oriented architecture (SOA) foundation. For example, Web services are often provided in an SOA-based system and used to promote an environment for systems that is loosely coupled and interoperable. The SOA facilitates configuration of entities, such as services, registries, contracts, proxies, and the like, to maximize loose coupling of the services and reuse of applications and data to achieve desired outcomes. The services in an SOA-based system are generally discoverable on the network or framework, are self-contained, have a network-addressable interface, and are location-transparent.
An important feature of services in an SOA-based system is interoperability that allows the systems using different platforms and languages to communicate with each other. However, such interoperability is only truly achievable if the SOA-based system implements an integrated data model that provides the source of all data definitions and interface definitions required by the services, i.e., a “source-of-record” for the data definitions and/or data formats. In this regard, within existing SOA implementations, an Information Model (IM) is sometimes provided (or at least discussed as a desirable feature) that defines common and consistent vocabulary and semantics for the information that is passed between the components and services of the SOA. However, the IM is only an abstract or conceptual construct, and the IM is not implemented in the SOA to define data that is operated on and transmitted among the services. Instead, the realization or implementation is done through the use of concrete data models that govern the format of the information flowing within the SOA.
Ideally, the concrete data models are created by each developer of a service based on the IM or conceptual model provided for the SOA-based system. Unfortunately, in practice, some concrete data models or data definitions used by the services of the SOA-based system are derived from the IM or conceptual model while many are not or at least vary in a manner that can affect communications among the services. For example, a first application used to provide a service may define a data type or variable in a first manner (such as “customer” with a first data description) while a second application may define the same data type or variable in a second, different manner (such as “customer” with a second data description). When the two services attempt to communicate, there will be a breakdown when one service receives unexpected information or data in a format that is incompatible with its concrete data model. As a result, interoperability within an SOA-based system can be significantly reduced by the lack of synchronicity between the IM or conceptual model and the concrete data models implemented in practice by the services of the SOA-based system.
In current practice, the burden of validating that data formats and data definitions used by services comply with the conceptual model or source-of-record is placed either on the producing component/service or on the consuming or receiving component/service. Neither validation and enforcement technique has produced consistent or acceptable results. When the burden is placed on the producing service, the producing service must insure that any information it sends conforms with the data definitions in the conceptual model or IM prior to issuance or transmitting the data or information. When the burden is placed on the receiving or consuming service, the consuming service is forced to validate compliance of the received data or information with the conceptual model or IM and when found to be non-conforming, the consuming service must reject the invalid data or information.
A problem with either of these approaches to source-of-record validating is that there is overhead, i.e., processing time and the like, associated with validating the data and enforcing compliance, and this validating/enforcing overhead is experienced by the producing or consuming services on every exchange of information or data between services in such a service framework or environment. In other service framework implementations, the system is configured to forego or skip validation or model compliance enforcement. In these implementations, the consuming service simply trusts that the information exchanges are formatted correctly or in compliance with the source-of-record conceptual model. Unfortunately, systems trusting the producing service do not provide any assurance that the data is being validated against a source-of-record conceptual model, and likewise, even systems calling for validation and enforcement to be performed by the producing and consuming services do not include components for determining if such validation is performed correctly or in accordance with a source-of-record conceptual model or IM.
Hence, there remains a need for a method and system for managing the use of conceptual models, such as IMs, as a basis for creating concrete data models or data definitions implemented by services for communicating in a computer network or system (such as an SOA-based system). Preferably, such a method and system would enhance synchronization between the conceptual model governing the services framework and the concrete data models used in an ongoing basis by the services.